<!-- 
    let声明的变量只有在所处的块级有效
    if(true){
        let a=10;
    }
    console.log(a) //这里的a没有定义

    注意：使用let关键字声明的变量才具有块级作用域，使用var变量不具备块级作用域。
 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
        1.let关键字就是用来声明变量的
        2.使用let关键字声明的变量具有块级作用域
        3.在一个大括号中，使用let关键字声明的变量才具有k块级作用域。
        4.var关键字是不具备这种特点的
        5.防止循环变量变成全局变量
        
        */
        //1.let关键字就是用来声明变量的
        // let a = 10;
        // console.log(a);
        // if (true) {
        //     let b = 20;
        //     console.log(b);
        //     if (true) {
        //         let c = 30;
        //     }
        //     // console.log(c); //c is not defined
        // }
        // // console.log(b);//b is not defined

        // console.log('-------------------------------');
        // if (true) {
        //     let num = 100;
        //     var abc = 200; //不具备块级作用域
        // }
        // console.log(abc);
        // console.log(num); //num is not defined

        console.log('----------------------');
        for (let i = 0; i < 2; i++) {   //改成Let就不能被访问

        }
        console.log(i);


    </script>
</body>

</html>